package com.hhc.stack;

import java.util.Stack;

/**
 * 验证括号的有效性，括号只包含"("，")"，"["，"]"，"{"，"}"这6个字
 * 符，比如()，{()}，[](){}都是有效的，而{]，{(]}都是无效的。
 */
public class T1 {

    public static boolean isValid(String s){

        Stack<Character> stack = new Stack<>();

        for(char c : s.toCharArray()){
            if(c == '(')
                stack.push(')');
            else if(c == '[')
                stack.push(']');
            else if(c == '{')
                stack.push('}');
            else if(stack.isEmpty() || stack.pop() != c)
                return false;
        }
        return stack.isEmpty();
    }

    public static void main(String[] args) {
        isValid("{([]())}");
    }
}
